package cn.tedu.FileStream;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Date：2022年01月
 * Author：程Sir
 * Name： JavaSE-API
 * Content:
 *  - public void close() ：关闭此输出流并释放与此流相关联的任何系统资源。
 *
 * - public void flush() ：刷新此输出流并强制任何缓冲的输出字节被写出。
 * - public void write(byte[] b) ：将 b.length字节从指定的字节数组写入此输出流。
 * - public void write(byte[] b, int off, int len) ：从指定的字节数组写入 len字节，从偏移量 offff开始输出到此输出流。
 * - public abstract void write(int b) ：将指定的字节输出流。
 *
 * - public FileOutputStream(File file) ：默认是覆写模式
 * - public FileOutputStream(String name) ：默认是覆写模式
 * - public FileOutputStream(File file, boolean append) ： 创建文件输出流以写入由指定 File对象表示的文件
 * - public FileOutputStream(String name, boolean append) ： 创建文件输出流以指定的名称写入文件。
 *  boolean类型的参数，设置为true实现数据的追加【追加模式】，设置为false，实现数据的覆盖【覆写模式】,
 */
public class FOSDemo2 {
    public static void main(String[] args) throws IOException {

        // 创建输出流的对象
        FileOutputStream fileOutputStream = new FileOutputStream("c.txt",true);
        // 向指定文件对象中写入数据
//        fileOutputStream.write(97);//a
//        fileOutputStream.write(98);//b
//        fileOutputStream.write(99);//c
//        fileOutputStream.write(49);//1
//        fileOutputStream.write(50);//2

        fileOutputStream.write(51);//3

        byte[] b = "java Hello".getBytes();
        //void write(byte[] b)
        fileOutputStream.write(b);

        // void write(byte[] b, int off, int len)
        fileOutputStream.write(b,5,5);
        fileOutputStream.write("\r\n".getBytes());// 回车+换行

        byte[] b1 = {12,23,34,45,56,67};
        for (int i=0;i<b1.length;i++){
            fileOutputStream.write(b1[i]);
            fileOutputStream.write("\r\n".getBytes());// 回车+换行
        }


        // 关闭流连接，释放系统资源
        fileOutputStream.close();



    }
}
